package client_gui;

import java.awt.BorderLayout;
import javax.swing.JPanel;


/**
 * Klasa predstavlja startup panel klijent aplikacije. Objekat ove klase je jedan od dva
 * moguca osnovna panela klijent aplikacije (drugi je LoggedPanel).
 * InitialPanel u sebi sadrzi dva panela:
 * 1. LoginPanel
 * 2. RegisterPanel
 * 
 * @author UrosKrkic & Radivoje Popovic
 */
public class InitialPanel extends JPanel {

	/**
	 * Vlasnik - objekat prozora aplikacije
	 */
	private ClientWindow owner;
	
	// !!! Paneli koje u sebi sadrzi InitialPanel.
	private LoginPanel loginPanel = null;
	private RegisterPanel registerPanel = null;
	

	
	/**
	 * Konstruktor.
	 * @param owner - glavni prozor aplikacije
	 * @author UrosKrkic & Radivoje Popovic
	 */
	public InitialPanel(ClientWindow owner) {
		this.owner = owner;
		
		this.loginPanel = new LoginPanel(this.owner);
		this.registerPanel = new RegisterPanel(this.owner);
		
		initializeInitialPanel();
	}
	

	
	/**
	 * Metod vrsi inicijalizaciju InitialPanel-a.
	 * @author UrosKrkic & Radivoje Popovic
	 */
	private void initializeInitialPanel() {
		this.setLayout(new BorderLayout());
		
		this.add(loginPanel, BorderLayout.NORTH);
		this.add(registerPanel, BorderLayout.CENTER);
	}

	
	/**
	 * Metod postavlja username, password i status iz Login panela kao atribute
	 * ClientUser objekta, koji predstavlja korisnika koji je pokrenuo klijent
	 * aplikaciju i koji zeli da se loguje. 
	 * @author UrosKrkic & Radivoje Popovic
	 */
	public boolean createPartialLoginInfo() {
		return loginPanel.createPartialLoginInfo();
	}
	
	
	public void setInitialStatus(String status) {
		loginPanel.setInitialStatus(status);
	}
	
	
	public void setLoginUsername(String username) {
		loginPanel.setLoginUsername(username);
	}
	
	public void setLoginPassword(String password) {
		loginPanel.setLoginPassword(password);
	}
	
	public void setUsernameCheckBox(boolean flag) {
		loginPanel.setUsernameCheckBox(flag);
	}
	
	public void setPasswordCheckBox(boolean flag) {
		loginPanel.setPasswordCheckBox(flag);
	}
	
	public boolean isUsernameCheckBoxSelected() {
		return loginPanel.isUsernameCheckBoxSelected();
	}
	
	public boolean isPasswordCheckBoxSelected() {
		return loginPanel.isPasswordCheckBoxSelected();
	}
}
